/*------------------------------
 * value.c
 *   implementation of Value nodes
 *------------------------------
 */
 
#include "primary_include_file.h"
#include "nodes/parsenodes.h"

/* makeInteger */
Value *makeInteger(long i)
{
  Value *v = makeNode(Value);
  
  v->type = T_Integer;
  v->val.ival = i;
  return v;
}

/*
 *	makeFloat
 *
 * Caller is responsible for passing a malloc'd string.
 */
Value *makeFloat(char *numericStr)
{
	Value *v = makeNode(Value);

	v->type = T_Float;
	v->val.str = numericStr;
	return v;
}

/*
 *	makeString
 *
 * Caller is responsible for passing a malloc'd string.
 */
Value *makeString(char *str)
{
	Value	   *v = makeNode(Value);

	v->type = T_String;
	v->val.str = str;
	return v;
}

/*
 *	makeBitString
 *
 * Caller is responsible for passing a malloc'd string.
 */
Value *makeBitString(char *str)
{
	Value *v = makeNode(Value);

	v->type = T_BitString;
	v->val.str = str;
	return v;
}